1. Field
The present invention relates to a technology to realize uniqueness assurance in which related requests from terminal apparatuses are allocated to the same server among multiple servers capable of providing services in accordance with multiple communication protocols.
2. Description of Related Art
Server load balancers (SLBs) are usually used in load sharing for sharing loads among multiple servers. Such an SLB allocates a request (message) from a terminal apparatus, which is a client, to one server, among multiple servers, in accordance with an autonomous allocation algorithm, such as a round robin method. The allocation causes a session, which is a unit of information exchange, to be created in the server. Identification information (for example, a session identifier (ID)) for uniquely identifying the session is assigned to the created session and the identification information is notified to the SLB and the terminal apparatus. The SLB registers the relationship between the identification information and the server that holds the session corresponding to the identification information in a table or the like. The terminal apparatus submits a request with a packet in which the identification information is stored. The SLB refers to the table by using the identification information stored in the header of the packet to allocate the packet to the server that holds the session corresponding to the identification information. In the above manner, the SLB keeps a function of allocating the requests from the same terminal apparatus to the same server during the session. This function is called a uniqueness ensuring function (or a session keeping function).
The identification information is varied depending on the communication protocol. The session ID is used in communication protocols including Hypertext Transfer Protocol (HTTP). The session ID is stored in a set-cookie field or a cookie field in the HTTP header in an HTTP message. A call ID is used as the identification information in Session Initiation Protocol (SIP). The call ID is stored in a call-id field in the SIP header in an SIP message. The call ID is assigned by the terminal apparatus that transmits the SIP message (packet). A combination of a session ID and a server and a combination of a call ID and a server are information for realizing the uniqueness assurance in which messages are allocated to the servers to which the messages should be allocated. Accordingly, such information is hereinafter referred to as “uniqueness assurance information.”
For example, in the field of Service Discovery Protocol (SDP) in Next Generation Network (NGN), applications (hereinafter referred to as “coordination applications”) capable of requesting services in which multiple communication protocols are combined with each other are provided. The coordination applications include an application capable of displaying call information in accordance with the HTTP after an SIP call is established and an application that controls an SIP call via a Web page. A typical example of the coordination application is Call Schedule on Busy or No Answer (CSBNA) application that can coordinates the SIP with the HTTP. In the coordination application, it is usually necessary to transmit a message through a communication protocol to a server where a session is created through another communication protocol in order to realize the coordination between the communication protocols. Accordingly, it is necessary to realize the uniqueness assurance also in the coordination between the communication protocols. However, the SLB does not support the uniqueness assurance between multiple communication protocols because the SLB selects a server to which a message is allocated for every communication protocol with an autonomous load sharing (automatic allocation) function.
The uniqueness assurance between multiple communication protocols may be realized by generating uniqueness assurance information for other communication protocols supported by the coordination application in response to the creation of a session in the server and registering the uniqueness assurance information about each communication protocol in the SLB. However, with the coordination application, it is necessary to transmit messages in accordance with arbitrary communication protocols from the terminal apparatuses at arbitrary timing. As a result, cases should be supported in which, in addition to a message in accordance with a communication protocol, messages in accordance with the other communication protocols are substantially concurrently transmitted from the terminal apparatus. This is because the messages in accordance with other communication protocols transmitted from the terminal apparatus can reach the SLB before the uniqueness assurance information about each communication protocol is registered in the SLB and the SLB can allocate the messages to arbitrary servers with the automatic allocation function. Consequently, in order to certainly realize the uniqueness assurance between multiple communication protocols, that is, the uniqueness assurance supporting the coordination between the multiple communication protocols, it is important to support the cases in which messages in accordance with multiple communication protocols are substantially concurrently transmitted from the terminal apparatus.